今天要延續 Day22 所提到的內文,將 url
冠上它各自的綽號 name
urlpatterns = [
path('', views.showtemplate, name='index'),
path('<int:id>/', views.singleVendor, name='vendor_id'),
path('create', views.vendor_create_view, name = 'create'),
...略
]
從上面的內容我們可以將 name 用熟悉的綽號代替
但是此時你的你應該查覺到的!!
在我人生中,相同綽號的不只一個人阿 !! 沒有錯,就算是 小美、阿明或是小鐵 待在 河馬班,但是不代表說長頸鹿班就不會有小美、阿明或是小鐵阿!
(小美 : 關我屁事
或許,我們能將能將綽號取的更有獨特性一點 惣流·明日香·蘭格雷
挖哩咧,要記住這名字,跟要我背出每間學校的IP位址一樣困難
因此,為了避免 name 重複性的問題,我們勢必要在該 urls.py
加上 班級名稱,而在 Django 裡面,我們稱作它為 app_name
也就是說,我們的 urls.py 要修改成這樣
from django.contrib import admin
from django.urls import path
from . import views
app_name = 'vendors' # 新增
urlpatterns = [
path('', views.showtemplate, name='index'),
path('<int:id>/', views.singleVendor, name='vendor_id'),
path('create', views.vendor_create_view, name='create'),
...略
]
透過這個方法我們就能避免重複的名字發生,並且可以知道,這是屬於河馬班的阿明 還是 長頸鹿班的小美 ^^
等一下....! 修改還沒完成
如果你還記得,這個 url name 最初就是要給 reverse 函式作轉換用的,所以原先的 Model的 reverse也要修改,不然 Django 就會跟你抱怨你只告訴他對象,而沒有告訴她班級唷!
class Vendor(models.Model):
vendor_name = models.CharField(max_length = 20) # 攤販的名稱
store_name = models.CharField(max_length = 10) # 攤販店家的名稱
phone_number = models.CharField(max_length = 20) # 攤販的電話號碼
address = models.CharField(max_length = 100) # 攤販的地址
def get_absolute_url(self):
return reverse("vendors:vendor_id", kwargs={"id": self.id}) # 修改
今天內容相對簡單,大家應該都能秒懂,不過後續還有一些命名空間的心得分享,只好等我一更囉 ^^"
1024 一更, 更新內容太多,直接新增一篇在 Day 24 囉!